/**
 * FileDataReader
 * @version 1.0
 * Copyright: Wolna licencja
 */

package pl.put.io.code.input;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Klasa służąca do odczytywania danych z plików.
 * 
 * @author inf94337
 * 
 */
public class FileDataReader implements DataReader {

    /** Pole służące do przechowywania plików. */
    private File file;

    /**
     * Konstruktor przypisujący plik do pola file.
     * 
     * @param filePath ścieżka do pliku
     *            
     */
    public FileDataReader(String filePath) {
	file = new File(filePath);

    }

    /**
     * Implementacja metody readInput, wymuszona przez
     * zastosowanie interfejsu DataReader.
     * 
     * @return lista z danymi odczytanymi z pliku
     * 
     * @throws IOException wyjątek zwracany w razie błędu wejścia/wyjścia
     */
    public List<String> readInput() throws IOException {
	final List<String> result = new ArrayList<String>();
	BufferedReader reader = new BufferedReader(new FileReader(file));
	String line;
	while ((line = reader.readLine()) != null) {
	    result.add(line);
	}
	reader.close();
	return result;
    }

}
